package com.deco.service.store;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.deco.domain.vo.fix.FixTypeVo;
import com.deco.domain.vo.store.StoreJoinVo;
import com.deco.domain.vo.store.StoreShopVo;
import com.deco.logic.fix.FixTypeLogic;
import com.deco.logic.store.StoreJoinLogic;
import com.deco.logic.store.StoreShopLogic;
import com.deco.service.CommonService;
import com.free.common.vo.PageResponseVo;
import com.free.common.vo.PageSearchVo;
import com.free.common.vo.ResultModel;

@Service
public class StoreJoinService extends CommonService {
	   /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    
    @Autowired
    private StoreJoinLogic storeJoinLogic;
    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    
    public StoreJoinVo getStoreJoin(long id){
    	return storeJoinLogic.getStoreJoin(id);
    }
    
    public ResultModel save(StoreJoinVo storeJoinVo){
    	Date current = new Date();
		int currentUserId = getCurrentUserId();
    	if(storeJoinVo.getId() == null || storeJoinVo.getId() == 0L){
    		storeJoinVo.setCreateBy(currentUserId);
    		storeJoinVo.setCreateTime(current);
    		storeJoinVo.setUpdateBy(currentUserId);
    		storeJoinVo.setUpdateTime(current);
			storeJoinVo = storeJoinLogic.create(storeJoinVo);
			return ResultModel.success(storeJoinVo);
    	}
    	else{
    		storeJoinVo.setUpdateBy(currentUserId);
    		storeJoinVo.setUpdateTime(current);
    		int res = storeJoinLogic.update(storeJoinVo);
    		if(res > 0){
				return ResultModel.success();
			}
    	}
		return ResultModel.failure();
    }


	public ResultModel saveFront(StoreJoinVo storeJoinVo){
		Date current = new Date();
		if(storeJoinVo.getId() == null || storeJoinVo.getId() == 0L){
			storeJoinVo.setCreateTime(current);
			storeJoinVo.setUpdateTime(current);
			storeJoinVo = storeJoinLogic.create(storeJoinVo);
			return ResultModel.success(storeJoinVo);
		}
		else{
			storeJoinVo.setUpdateTime(current);
			int res = storeJoinLogic.update(storeJoinVo);
			if(res > 0){
				return ResultModel.success();
			}
		}
		return ResultModel.failure();
	}

	public ResultModel delete(long id) {
		storeJoinLogic.delete(id);
	  	return ResultModel.success();
	}

	public PageResponseVo<StoreJoinVo> pageInfo(
			PageSearchVo<StoreJoinVo> condition) {
    	return storeJoinLogic.getPageInfo(condition);
	}
	
	public List<StoreJoinVo> selectByNameLike(
			StoreJoinVo storeJoinVo) {
    	return storeJoinLogic.selectByNameLike(storeJoinVo);
	}

	public ResultModel batchDelete(Integer[] ids) {
		if(ids == null || ids.length == 0){
    		return ResultModel.success();
		}
    	int res = storeJoinLogic.batchDelete(ids);
    	if(res > 0){
    		return ResultModel.success();
		}
		return ResultModel.failure();
	}

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/

}
